






import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
class XiaoXiPage extends StatefulWidget {
  const XiaoXiPage({super.key});
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _XiaoXiPageState();
  }
}


class _XiaoXiPageState extends State<XiaoXiPage>{
// 1. 创建表单全局Key（用于控制表单）
  final _formKey = GlobalKey<FormState>();
  // 2. 存储输入值（可选，也可通过 onSaved 回调获取）
  String? _username;
  String? _password;

  // 3. 提交表单
  void _submitForm() {
    // 验证所有字段
    if (_formKey.currentState!.validate()) {
      // 验证通过：保存输入值（触发各字段的 onSaved 回调）
      _formKey.currentState!.save();

      // 执行提交逻辑（如登录请求）
      print("提交数据：用户名=$_username，密码=$_password");
      ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(content: Text("登录中...")),
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(title: Text("消息"),),
      body: SafeArea(child: Center(
        child: Container(
          margin: EdgeInsets.all(10.r),
          decoration: BoxDecoration(
            
          ),
          child:
          Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Form(
                  key: _formKey, // 关键：必须绑定
                  child: Column(
                    children: [
                      const SizedBox(height: 16),
                      TextFormField(
                        decoration: const InputDecoration(
                          labelText: "",
                          hintText: "请输入用户名",
                          labelStyle: TextStyle(color: Colors.black),
                          prefixIcon: Icon(Icons.person),
                          border: OutlineInputBorder(), // 带边框样式
                        ),
                        // 验证规则（必填，长度≥3）
                        validator: (value) {
                          if (value == null || value.isEmpty) {
                            return "请输入用户名";
                          }
                          if (value.length < 3) {
                            return "用户名长度不能少于3位";
                          }
                          return null; // 验证通过
                        },
                        // 保存输入值
                        onSaved: (value) => _username = value,
                      ),
                      const SizedBox(height: 16),
                      // 密码输入框
                      TextFormField(
                        decoration: const InputDecoration(
                          labelText: "密码",
                          hintText: "请输入密码",
                          labelStyle: TextStyle(color: Colors.black),
                          prefixIcon: Icon(Icons.lock),
                          border: OutlineInputBorder(),
                        ),
                        obscureText: true, // 密码隐藏
                        // 验证规则（必填，长度≥6）
                        validator: (value) {
                          if (value == null || value.isEmpty) {
                            return "请输入密码";
                          }
                          if (value.length < 6) {
                            return "密码长度不能少于6位";
                          }
                          return null; // 验证通过
                        },
                        // 保存输入值
                        onSaved: (value) => _password = value,
                      ),
                      const SizedBox(height: 24),

                      // 提交按钮
                      SizedBox(
                        width: double.infinity,
                        child: ElevatedButton(
                          onPressed: _submitForm, // 点击提交
                          child: const Padding(
                            padding: EdgeInsets.symmetric(vertical: 12),
                            child: Text("登录"),
                          ),
                        ),
                      ),
                    ],
                  ))
            ],
          )
          ,
        )

       ,
      )),
    );
  }

}